package model

// GlobalConfig 全局配置
type GlobalConfig struct {
	Db   DbConfig   `json:"db"`
	Rest RestConfig `json:"rest"`
}

// Check 判断配置文件是否正确
func (c *GlobalConfig) Check() bool {
	return c.Db.check() && c.Rest.check()
}

// DbConfig 数据库配置
type DbConfig struct {
	Host            string `json:"host"`
	Port            int    `json:"port"`
	Name            string `json:"name"`
	Username        string `json:"username"`
	Password        string `json:"password"`
	MaxIdleConns    int    `json:"maxIdleConns"`
	MaxOpenConns    int    `json:"maxOpenConns"`
	ConnMaxLifetime int    `json:"connMaxLifetime"`
}

func (c *DbConfig) check() bool {
	return len(c.Host) > 0 && c.Port > 0 && len(c.Name) > 0 && len(c.Username) > 0 && len(c.Password) > 0
}

// RestConfig rest配置文件
type RestConfig struct {
	Port int `json:"port"`
}

func (c *RestConfig) check() bool {
	return c.Port > 0
}
